
/**
 * 计算两个经纬度坐标点之间的距离（单位：米）
 * @param {number} lat1 - 第一个点的纬度
 * @param {number} lon1 - 第一个点的经度
 * @param {number} lat2 - 第二个点的纬度
 * @param {number} lon2 - 第二个点的经度
 * @returns {number} 两点之间的距离（米）
 */
function calculateDistance(lat1, lon1, lat2, lon2) {
  // 地球半径（米）
  const R = 6371000;
  
  // 将经纬度从度数转换为弧度
  const φ1 = lat1 * Math.PI / 180;
  const φ2 = lat2 * Math.PI / 180;
  const Δφ = (lat2 - lat1) * Math.PI / 180;
  const Δλ = (lon2 - lon1) * Math.PI / 180;
  
  // Haversine 公式
  const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
            Math.cos(φ1) * Math.cos(φ2) *
            Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  
  // 计算距离
  const distance = R * c;
  
  return distance;
}
module.exports = calculateDistance